package main

import "fmt"

/*
实现一个简易的ATM存取款系统



实现一个简单的ATM存取款系统
一、	1.登录成功才能进入系统
	2.取钱
	3.查询余额
	4.退出整个系统
二、登录失败会有三次重试机会


*/

func qukuan(balance int, num int) (int, bool) {
	if num <= balance {
		return balance - num, true
	} else {
		fmt.Println("您的账户余额不足！")
		return balance, false
	}
}

func main() {
	var username = "root"
	var passwd = "123456"
	var num int
	balance := 1000
	var name, mima, caozuo string
	var loginAttempts = 0
	var mimaAttempts = 0
	var shuruAttempts = 0
	for loginAttempts < 3 {
		fmt.Println("请输入您的用户名：")
		fmt.Scanln(&name)
		if name == username {

			for mimaAttempts < 3 {
				fmt.Println("请输入您的密码：")
				fmt.Scanln(&mima)
				if mima == passwd {
					fmt.Println("登录成功！")
					for shuruAttempts < 3 {
						fmt.Println(" 请选择您所需要的操作：\nA.余额查询   B.取款   C.退出系统")
						fmt.Scanln(&caozuo)
						switch caozuo {

						case "A", "a":
							fmt.Printf("您的余额为：%d", balance)

						case "B", "b":
							fmt.Println("请输入您要取款的金额：")
							fmt.Scanln(&num)
							var success bool
							balance, success = qukuan(balance, num)
							if success {
								fmt.Printf("取款成功，您的余额为：%d\n", balance)
							}
						case "C", "c":
							fmt.Println("感谢您使用本系统，再见！")
							return
						default:

							fmt.Printf("您输入的指令有误，请重新输入！您还有%d次机会\n", 2-shuruAttempts)
							shuruAttempts++

						}
						if shuruAttempts == 3 {
							fmt.Println("错误指令过多，退出操作！")
							return

						}
					}
				} else {
					fmt.Printf("您的密码错误，您还有%d次输入机会\n", 2-mimaAttempts)
					mimaAttempts++
				}
				if mimaAttempts == 3 {
					fmt.Println("登败次数过多，账户已被锁定。")
					return
				}
			}
		} else {
			fmt.Printf("找不到您的用户！您还有%d次机会\n", 2-loginAttempts)
			loginAttempts++
		}
		if loginAttempts == 3 {
			fmt.Println("登录失败次数过多，账户已被锁定。")
		}

	}
}
